package cn.csc.module.pay.controller.app.jzb.vo;

import com.fasterxml.jackson.annotation.JsonProperty;
import com.google.gson.annotations.SerializedName;
import io.swagger.annotations.ApiModel;
import lombok.Data;

/**
 * 按订单号将某一商户的冻结金额分账给其他一个或多个商户，分账时分账金额分给自己(原充值订单的子账号)的金额默认大于70%（分账后的金额变为可提现金额）
 * @author liuchuang
 * @version 1.0
 * @date 2023/12/8 15:17
 * @modify
 */
@ApiModel("用户APP - 分账 Request VO")
@Data
public class SubAccountQuestReqVO {

    /**
     * 原支付场景生成的子订单号
     */
    private String oldPaySubOrderNo;
    /**
     * 即市场定义的支付订单所属日期
     */
    private String oldPayOrderDate;
    /**
     * 即充值入账的见证子账户
     */
    private String outSubAcctNo;
    /**
     * 总的分账金额
     */
    private String tranTotalAmt;
    /**
     * 1到30条
     */
    private String ordersCount;
    /**
     * 交易信息数组
     */
    private TranItemArray[] tranItemArray;
    /**
     * 保留域1
     */
    private String reservedMsgOne;
    /**
     * 保留域2
     */
    private String reservedMsgTwo;
    /**
     * 子订单信息
     */
    @Data
    public static class TranItemArray{
        /**
         * 分账子单号
         */
        @SerializedName("SubAcctOrderNo")
        @JsonProperty("SubAcctOrderNo")
        private String subAcctOrderNo;
        /**
         * 分账转入子账户
         */
        @SerializedName("InSubAcctNo")
        @JsonProperty("InSubAcctNo")
        private String inSubAcctNo;
        /**
         * 分账金额
         */
        @SerializedName("SubAcctAmt")
        @JsonProperty("SubAcctAmt")
        private String subAcctAmt;
        /**
         * 分账订单描述
         */
        @SerializedName("SubAcctOrderDesc")
        @JsonProperty("SubAcctOrderDesc")
        private String subAcctOrderDesc;
        /**
         * 分账备注
         */
        @SerializedName("SubAcctRemark")
        @JsonProperty("SubAcctRemark")
        private String subAcctRemark;
        /**
         * 分账保留域
         */
        @SerializedName("SubAcctReservedMsg")
        @JsonProperty("SubAcctReservedMsg")
        private String subAcctReservedMsg;

        /**
         * 第三方用户id
         */
        private transient String appUserId;

    }

}
